using System;
using System.Collections.Generic;

namespace B.S.Medical.Api.Read.DTOS
{
    /// <summary>
    /// 医生排班信息DTO
    /// </summary>
    public class DoctorScheduleInfoDTO
    {
        /// <summary>
        /// 排班ID (上午和下午排班的ID)
        /// </summary>
        public List<int> ScheduleIds { get; set; } = new List<int>();
        
        /// <summary>
        /// 医生ID
        /// </summary>
        public int DoctorId { get; set; }

        /// <summary>
        /// 医生姓名
        /// </summary>
        public string DoctorName { get; set; }

        /// <summary>
        /// 职称
        /// </summary>
        public string JobTitle { get; set; }

        /// <summary>
        /// 简介
        /// </summary>
        public string Briefly { get; set; }

        /// <summary>
        /// 照片
        /// </summary>
        public string Photo { get; set; }

        /// <summary>
        /// 挂号费
        /// </summary>
        public decimal Copayfee { get; set; }

        /// <summary>
        /// 院区ID
        /// </summary>
        public int CampusId { get; set; }

        /// <summary>
        /// 院区名称
        /// </summary>
        public string CampusName { get; set; }

        /// <summary>
        /// 院区地址
        /// </summary>
        public string CampusAddr { get; set; }

        /// <summary>
        /// 科室ID
        /// </summary>
        public int DepartmentId { get; set; }

        /// <summary>
        /// 科室名称
        /// </summary>
        public string DepartmentName { get; set; }

        /// <summary>
        /// 科室地址
        /// </summary>
        public string DepartmentAddr { get; set; }

        /// <summary>
        /// 排班日期
        /// </summary>
        public DateTime ScheduleDate { get; set; }

        /// <summary>
        /// 总号源数
        /// </summary>
        public int TotalSlotCount { get; set; }

        /// <summary>
        /// 剩余号源数
        /// </summary>
        public int RemainingSlotCount { get; set; }

        /// <summary>
        /// 上午排班信息
        /// </summary>
        public SchedulePeriodDTO MorningSchedule { get; set; } = new SchedulePeriodDTO();

        /// <summary>
        /// 下午排班信息
        /// </summary>
        public SchedulePeriodDTO AfternoonSchedule { get; set; } = new SchedulePeriodDTO();
    }

    /// <summary>
    /// 时段排班信息DTO（上午/下午）
    /// </summary>
    public class SchedulePeriodDTO
    {
        /// <summary>
        /// 排班ID
        /// </summary>
        public int ScheduleId { get; set; }

        /// <summary>
        /// 开始时间（格式：HH:mm）
        /// </summary>
        public string StartTime { get; set; }

        /// <summary>
        /// 结束时间（格式：HH:mm）
        /// </summary>
        public string EndTime { get; set; }

        /// <summary>
        /// 总号源数
        /// </summary>
        public int TotalSlots { get; set; }

        /// <summary>
        /// 剩余号源数
        /// </summary>
        public int RemainingSlots { get; set; }

        /// <summary>
        /// 是否有排班
        /// </summary>
        public bool HasSchedule { get; set; }

        /// <summary>
        /// 是否已过期（当前时间已超过排班结束时间）
        /// </summary>
        public bool IsExpired { get; set; }
    }
} 